GNU Core Utilities
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
The GNU Core Utilities or coreutils is a collection of GNU software that implements many standard, Unix-based shell commands. The utilities generally provide POSIX compliant interface when the POSIXLY_CORRECT environment variable is set, but otherwise offers a superset to the standard interface. For example, the utilities support long options and options after parameters. This environment variable enables a different functionality in BSD.
Similar collections are available in the FOSS ecosystem, with a slightly different scope and focus (less functionality), or license. For example, BusyBox which is licensed under GPL-2.0-only, and Toybox which is licensed under 0BSD.
Contents
• Commands
• History
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Commands
The commands implemented by coreutils are listed below. Throughout this article and customary for Unix-based systems, the term file refers to all file system items including regular files and special files such as directories.
File utilities
• chcon – Changes file security context (SELinux)
• chgrp – Changes file group ownership
• chown – Changes file user ownership
• chmod – Changes file permissions
• cp – Copies files
• dd – Copies and converts file data
• df – Reports file system free space
• dir – Like ls -C -b; by default lists files in columns, sorted vertically
• dircolors – Configures colors used for ls output
• install – Copies files and sets file attributes
• ln – Creates a link to a file
• ls – Lists files
• mkdir – Creates directories
• mkfifo – Creates named pipes (FIFOs)
• mknod – Creates block or character special files
• mv – Moves and renames files
• realpath – Reports the absolute or relative path of a file
• rm – Deletes files
• rmdir – Deletes empty directories
• shred – Overwrites a file to hide its contents and optionally deletes it
• sync – Flushes file system buffers
• touch – Changes file timestamps; creating files if they do not exist
• truncate – Sets the size of a file via truncation or extension
• vdir – Like ls -l -b; by default lists files in long format
Text utilities
• b2sum – Computes and checks BLAKE2b message digest
• base32 – Encodes or decodes base32
• base64 – Encodes or decodes base64
• cat – Concatenates files
• cksum – Report or compute the checksum of files
• comm – Compares two sorted files line by line
• csplit – Splits a file into sections determined by context lines
• cut – Removes sections from each line of files
• expand – Converts tabs to spaces
• fmt – Formats text
• fold – Wraps each input line to fit in specified width
• head – Outputs the first part of files
• join – Joins lines of two files on a common field
• nl – Numbers lines of files
• numfmt – Formats numbers
• od – Dumps files in octal and other formats
• paste – Merges lines of files
• ptx – Produces a permuted index of file contents
• pr – Paginates or columnates files
• shuf – Generates random permutations
• sort – Sorts lines of text files
• split – Splits a file into pieces
• sum – Checksums and counts the blocks in a file
• tac – Concatenates files in reverse order; line by line
• tail – Outputs the last part of files
• tr – Translates or deletes characters
• tsort – Performs a topological sort
• unexpand – Converts spaces to tabs
• uniq – Removes duplicate lines from a sorted file
• wc – Reports the number of bytes, words, and lines in files
Shell utilities
• arch – Reports machine hardware name; same as uname -m
• basename – Removes the path prefix from a given pathname
• chroot – Changes the root directory
• date – Reports or sets the system date and time
• dirname – Strips non-directory suffix from file name
• du – Shows disk usage on file systems
• echo – Outputs text
• env – Reports and modifies environment variables
• expr – Evaluates expressions
• false – Does nothing but exit with unsuccessful status
• hostid – Reports the numeric identifier for the current host
• logname – Reports the user's login name
• nice – Modifies scheduling priority
• nohup – Allows a command to continue running after logging out
• nproc – Queries the number of (active) processors
• pathchk – Checks whether file names are valid or portable
• pinky – A lightweight version of finger
• printenv – Reports environment variables
• printf – Formats text
• pwd – Reports the current working directory
• readlink – Reports the value of a symbolic link
• runcon – Run command with specified security context
• seq – Reports a sequence of numbers
• sleep – Blocks (delays, waits) for a specified amount of time
• stdbuf – Runs a command with custom standard streams configuration
• stty – Changes and reports terminal line settings
• tee – Sends output to multiple files
• test – Evaluates an expression
• timeout – Runs a command with a time limit
• true – Does nothing but exit with success status
• tty – Reports the terminal name
• uname – Reports system information
• unlink – Removes files via unlink() function
• uptime – Reports how long the system has been running
• users – Reports the user names of users currently logged into the current host
• who – Reports logged-in users
• yes – Outputs a string repeatedly
History
In 1990, David MacKenzie announced GNU fileutils.cite-ref-3[3]
In September 2002, the GNU coreutils were created by merging the earlier packages textutils, shellutils, and fileutils, along with some other miscellaneous utilities.cite-ref-merge-7-0[7]
In July 2007, the license of the GNU coreutils was updated from GPL-2.0-or-later to GPL-3.0-or-later.cite-ref-8[8]
See also
• GNOME Core Applications – Software applications built with the GNOME philosophy in mind
• GNU Binutils – GNU software development tools for executable code
• List of KDE applications – Set of applications and supporting librariesPages displaying short descriptions of redirect targets
• Toybox – Collection of Unix tools in single executable file
• Unix philosophy – Software development philosophy
• util-linux – Package of Linux utilities from the Linux Kernel Organization
References
cite-note-wikidata-159b59e800f29beac91a97aa5eccaeaaf22dea06-v20-11. citerefp-draig-brady2025Pádraig Brady (9 April 2025). "coreutils-9.7 released [stable]". Retrieved 9 April 2025.
cite-note-22. "The GNU Core Utilities Open Source Project on Open Hub: Languages Page". Archived from the original on 2019-03-28. Retrieved 2019-03-28.
cite-note-33. ↑ "GNU file utilities release 1.0". groups.google.com.
cite-note-44. ↑ "GNU shell programming utilities released". groups.google.com.
cite-note-55. ↑ "new GNU file and text utilities released". groups.google.com.
cite-note-66. ↑ "GNU's Who".
cite-note-merge-77. ↑ citerefmeyering2003Meyering, Jim (2003-01-13). "README-package-renamed-to-coreutils". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
cite-note-88. ↑ citerefmeyering2007Meyering, Jim (2007-07-23). "COPYING: Update to Version 3". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
External links
The Wikibook
Guide to UNIX
has a page on the topic of:
Commands
• Official website
• Manual
• README
• The Heirloom Toolchest - An alternative set of utilities
• opensource.com article: gnu-core-utilities on 4 Apr 2018 by David Both (Correspondent)
• Rosetta Stone For *Nix – configurable list of equivalent programs for *nix systems.
• The Unix Acronym List – explains the names of many Unix commands.
• The UNIX System Homepage